home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / apps / astronmy / strchart.arc / patch.arc / starchrt.dif < prev    next >
Text File  |  1989-03-23  |  6KB  |  189 lines

  1. *** ../starchart/starchart.c    Mon Sep 19 09:12:20 1988
  2. --- starchrt.c    Mon Sep 26 23:50:39 1988
  3. ***************
  4. *** 58,72 ****
  5. --- 58,87 ----
  6.    ![11] the -g flag sets a mag limit for star proper names, else use codes
  7.    */
  8.   
  9. + #ifdef ST_MWC /* Mark Williams C for the Atari ST */
  10. + #define SYSV /* MWC is almost SYSV compatible */
  11. + #endif /* ST_MWC */
  12.   #include <stdio.h>
  13.   #include <math.h>
  14.   #ifndef SYSV
  15.   #include <strings.h>
  16.   #else
  17. + #define index strchr
  18. + #ifndef SYSVR3 /* System V release 3 doesn't have this header file */
  19. + #ifndef ST_MWC
  20.   #include <string.h>
  21. + #else /* ST_MWC */
  22. + char *strchr();
  23. + #endif /* ST_MWC */
  24. + #endif /* SYSVR3 */
  25.   #endif
  26.   #include <ctype.h>
  27. + #ifndef ST_MWC
  28.   #include "starchart.h"
  29. + #else /* ST_MWC */
  30. + #include "starchrt.h"
  31. + #endif /* ST_MWC */
  32.   
  33.   /*
  34.    * default datasets are local, unless defined in Makefile
  35. ***************
  36. *** 122,127 ****
  37. --- 137,149 ----
  38.   int annodetail, objdetail;    /* flags to control output */
  39.   int annoswitch, objswitch;    /* switches as seen on command line */
  40.   float olat, olon;        /* save areas for track clipping */        
  41. + #ifdef ST_MWC
  42. + #ifdef INTERACTIVE
  43. + extern int oldrez; /* Used to see if we've initialized the screen. */
  44. + int exit_and_save = FALSE; /* Don't wait for keypress when done, save file */
  45. + char picturefile[15]; /* into "picturefile" (def = star.pi1) and exit */
  46. + #endif /* INTERACTIVE */
  47. + #endif /* ST_MWC */
  48.   
  49.   /* the code */
  50.   
  51. ***************
  52. *** 253,258 ****
  53. --- 275,297 ----
  54.           case 'b': bigflag = TRUE; break;
  55.           case 'a': annoswitch = TRUE; break;
  56.           case 'o': objswitch = TRUE; break;
  57. + #ifdef ST_MWC
  58. + #ifdef INTERACTIVE
  59. +                 /* Exit immediately, saving the picture in a DEGAS or
  60. +                    NeoChrome file (Chosen by .pi1 or .neo extender */
  61. +         case 'x': exit_and_save = TRUE;
  62. +                   if (((j+1) < argc) && (argv[j+1][0] != '-'))
  63. +                                strcpy(picturefile, argv[++j]);
  64. +                           else
  65. +                                strcpy(picturefile, "star.pi1");
  66. +                           break;
  67. + #else /* !INTERACTIVE */
  68. +                 /* Help for the GEM Desktop, which cannot redirect. */
  69. +         case 'x': if (((j+1) < argc) && (argv[j+1][0] != '-'))
  70. +                           freopen(argv[++j], "wb", stdout);
  71. +                           break;
  72. + #endif /* INTERACTIVE */
  73. + #endif /* ST_MWC */
  74.           default:  die("unknown switch - %s", argv[j]); break;
  75.           }
  76.           if (j == argc) die("trailing command line flag - %s", argv[j-1]);
  77. ***************
  78. *** 373,379 ****
  79. --- 412,426 ----
  80.       if (!title) title = "LEGEND";
  81.       rastr(ras, chart->racen);
  82.       declstr(dls, chart->dlcen);
  83. + #ifdef ST_MWC
  84. + #ifdef INTERACTIVE /* This bleeds over into the thumbnail, so trim it */
  85. +     sprintf(outstr, "(%s,%s)", ras, dls, chart->maglim);
  86. + #else /* !INTERACTIVE */
  87.       sprintf(outstr, "(%s,%s lim: %2.1f)", ras, dls, chart->maglim);
  88. + #endif /* INTERACTIVE */
  89. + #else /* !ST_MWC */
  90. +     sprintf(outstr, "(%s,%s lim: %2.1f)", ras, dls, chart->maglim);
  91. + #endif /* ST_MWC */
  92.   /*
  93.    * there are reports that large point sizes (eg "16", below) cause characters
  94.    * to overlap on some (pic?) output devices. To fix, set values to "10".
  95. ***************
  96. *** 417,422 ****
  97. --- 464,481 ----
  98.   
  99.       pvecsize(10); pvecsyms( 95,75,"double");   pdrawStar( 65,75, 2, 'D', NULL);
  100.       pvecsize(10); pvecsyms(260,75,"variable"); pdrawStar(230,75, 2, 'V', NULL);
  101. + #ifdef ST_MWC
  102. + #ifdef INTERACTIVE /* Adjust the legend so symbols don't overlap labels */
  103. +     pvecsize(10); pvecsyms( 95,50,"planet");   pdrawPlan( 75,50, 1, 'S', NULL);
  104. +                            pdrawPlan( 55,50, 1, 's', NULL);
  105. +                            pdrawPlan( 35,50, 1, 'V', NULL);
  106. +     pvecsize(10); pvecsyms(260,50,"galaxy");   pdrawGalx(240,50, 1, 'E', NULL);
  107. +                            pdrawGalx(215,50, 1, 'S', NULL);
  108. +     pvecsize(10); pvecsyms( 95,25,"nebula");   pdrawNebu( 75,25, 1, 'D', NULL);
  109. +                            pdrawNebu( 45,25, 1, 'P', NULL);
  110. +     pvecsize(10); pvecsyms(260,25,"cluster");  pdrawClus(240,25, 1, 'O', NULL);
  111. +                            pdrawClus(215,25, 1, 'G', NULL);
  112. + #else /* !INTERACTIVE */
  113.       pvecsize(10); pvecsyms( 95,50,"planet");   pdrawPlan( 65,50, 1, 'S', NULL);
  114.       pvecsize(10); pvecsyms(260,50,"galaxy");   pdrawGalx(230,50, 1, 'E', NULL);
  115.                              pdrawGalx(205,50, 1, 'S', NULL);
  116. ***************
  117. *** 424,429 ****
  118. --- 483,490 ----
  119.                              pdrawNebu( 40,25, 1, 'P', NULL);
  120.       pvecsize(10); pvecsyms(260,25,"cluster");  pdrawClus(230,25, 1, 'O', NULL);
  121.                              pdrawClus(205,25, 1, 'G', NULL);
  122. + #endif /* INTERACTIVE */
  123. + #endif /* ST_MWC */
  124.       }
  125.   
  126.   chartbanner(chart)
  127. ***************
  128. *** 495,501 ****
  129.       if (sbuf[11] != 0)
  130.       code[0] = sbuf[15];
  131.       subcode[0] = sbuf[16];
  132. !     color [0] = '\0'; strcpy (color, "  "); /* set unknowns to blanks */
  133.       label [0] = '\0';
  134.       name [0] = '\0'; strncat (name, &sbuf[17], strlen (&sbuf [17]) - 1);
  135.       }
  136. --- 556,562 ----
  137.       if (sbuf[11] != 0)
  138.       code[0] = sbuf[15];
  139.       subcode[0] = sbuf[16];
  140. !     strcpy(color, "  "); /* set unknowns to blanks */
  141.       label [0] = '\0';
  142.       name [0] = '\0'; strncat (name, &sbuf[17], strlen (&sbuf [17]) - 1);
  143.       }
  144. ***************
  145. *** 554,566 ****
  146. --- 615,635 ----
  147.   /*
  148.    * extract color, label and name
  149.    */
  150. + #ifdef ST_MWC
  151. +                 len = strlen(sbuf);
  152. +                 if (len > 16)
  153. + #endif /* ST_MWC */
  154.           strncat (color, &sbuf[16], 2);
  155. + #ifdef ST_MWC
  156. +                 if (len > 18)
  157. + #endif /* ST_MWC */
  158.           strncat (label, &sbuf[18], strlen (&sbuf [18]) - 1);
  159.           if  ((len = strlen (label)) > 5)
  160.               {
  161.               strncat (name, &label[5], len - 5);
  162.               label [5] = '\0';
  163.               }
  164. +                 break;
  165.           }
  166.       }
  167.       return(0);
  168. ***************
  169. *** 896,901 ****
  170. --- 965,971 ----
  171.       return (new -= b);
  172.       }
  173.   
  174. + #ifndef INTERACTIVE
  175.   die(a,b)
  176.       char *a, *b;
  177.       {
  178. ***************
  179. *** 904,909 ****
  180. --- 974,980 ----
  181.       fprintf(stderr,"\n");
  182.       exit(1);
  183.       }
  184. + #endif /* !INTERACTIVE */
  185.   
  186.   #define LINELEN 80
  187.   static char legend[LINELEN];
  188.